import request from '@/utils/request'

// 查询设备数据列表
export function listData(query) {
  return request({
    url: '/biz/data/list',
    method: 'get',
    params: query
  })
}

// 查询设备数据列表
export function selectList(query) {
  return request({
    url: '/biz/data/selectList',
    method: 'get',
    params: query
  })
}

/**
 * 获取设备数据，格式化为map形式
 * @param query 可以传设备code
 * @returns {Promise<unknown>}
 */
export function getDeviceData(query) {
  return new Promise((resolve, reject) => {

    const params = Object.assign({}, query);

    listData(params).then(res => {
      res.data = res.rows.reduce((prev, item) => {
        prev[item.signalCode] = item.value;
        return prev;
      }, {});
      resolve(res);
    }).catch(err => {
      reject(err);
    })
  })
}


// 查询设备数据详细
export function getData(id) {
  return request({
    url: '/biz/data/' + id,
    method: 'get'
  })
}

// 新增设备数据
export function addData(data) {
  return request({
    url: '/biz/data',
    method: 'post',
    data: data
  })
}

// 修改设备数据
export function updateData(data) {
  return request({
    url: '/biz/data',
    method: 'put',
    data: data
  })
}

// 删除设备数据
export function delData(id) {
  return request({
    url: '/biz/data/' + id,
    method: 'delete'
  })
}

// 导出设备数据
export function exportData(query) {
  return request({
    url: '/biz/data/export',
    method: 'get',
    params: query
  })
}


// 查询设备数据列表
export function selectDeviceData(query) {
  return request({
    url: '/biz/data/selectDeviceData',
    method: 'get',
    params: query
  })
}

// 查询设备温度列表
export function selectTemperatureData(query) {
  return request({
    url: '/temperature/getTempareture',
    method: 'get',
    params: query
  })
}

// 查询历史数据
export function listHistory(query) {
  return request({
    url: '/biz/data/listHistory',
    method: 'get',
    params: query
  })
}

// 遥控/遥调
export function remoteRegulate(data) {
  return request({
    url: '/biz/data/remoteRegulate',
    method: 'put',
    data: data
  })
}
